公開日: 2025 年 5 月 28 日
特に明記しない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャネル リリースに適用されます。ここに記載されている機能の詳細については、記載されているリンクまたは ChromeStatus.com のリストをご覧ください。Chrome 138 は 2025 年 5 月 28 日時点でベータ版です。最新バージョンは、パソコンの Google.com または Android の Google Play ストアからダウンロードできます。
CSS と UI
今回のリリースでは、CSS と UI に 6 つの新機能を追加しました。
CSS stretch
サイズ設定キーワード
CSS サイズ設定プロパティのキーワード(width
、height
など)。要素が、その親ブロックの使用可能なスペースを完全に埋めるまで拡大できるようにします。100%
と似ていますが、結果のサイズが box-sizing
で指定されたボックスではなく、要素のマージン ボックスに適用される点が異なります。このキーワードを使用すると、要素の余白を維持しながら、可能な限り大きくすることができます。
CSS 記号関連の関数: abs()
、sign()
符号関連の関数 abs()
と sign()
は、引数の符号に関連するさまざまな関数を計算します。
OS レベルのフォント スケールの CSS 環境変数
ユーザーが希望するフォントスケールを CSS に公開します。現時点では、ユーザーがオペレーティング システムの設定で好みのフォントサイズを変更したかどうかをページで検出することは実用的ではありません。この CSS 環境変数には、ユーザーが選択したスケールが反映されます。
CSS sibling-index()
と sibling-count()
sibling-index()
関数と sibling-count()
関数は、CSS プロパティ値で整数として使用し、兄弟要素の位置または兄弟要素の合計数に基づいて要素のスタイルを設定できます。これらの関数は整数値として直接使用できますが、calc()
式内で使用するとさらに便利です。
li {
animation-delay: calc(0.1s * sibling-index());
}
補間進行状況の関数表記: CSS progress()
関数
progress()
関数表記は、2 つの計算(進行状況の開始値と進行状況の終了値)間の 1 つの計算の位置(進行状況の値)を表す <number>
値を返す数学関数です。
Viewport Segments Enumeration API
Viewport Segments API を使用すると、デベロッパーは折りたたみ式デバイスをターゲットにウェブ レイアウトを適応させることができます。ビューポート セグメントは、ビューポートの論理的に分離された領域の位置とサイズを定義します。ビューポート セグメントは、ビューポートが分割として機能する 1 つ以上のハードウェア機能(別々のディスプレイ間の折り目やヒンジなど)によって分割されたときに作成されます。セグメントは、デベロッパーが論理的に区別できるビューポートの領域です。
ウェブ API
WebCodecs に動画フレームの向きメタデータのサポートを追加
WebCodecs のさまざまな動画関連インターフェースに rotation: int
値と flip: bool
値を導入し、デベロッパーが向きのあるフレームソース(Android カメラや特定のメディアなど)を扱えるようにしました。VideoFrame
インターフェースでは、任意の回転と反転で VideoFrame を作成する機能と、VideoFrame
オブジェクトのこの情報のアクセサラが追加されました。VideoDecoderConfig
オブジェクトは、デコードされた VideoFrame オブジェクトで自動的に出力される rotation
フィールドと flip
フィールドを取得します。VideoEncoder
クラスは、EncodedVideoChunkMetadata
の一部として出力される VideoDecoderConfig
に、encode()
から回転と反転の情報を渡すメカニズムを獲得しました。向きの異なるフレームで encode()
が呼び出されると、致命的でない例外がスローされます。configure()
メソッドを使用して、許可される画面の向きをリセットできます。
Crash Reporting API: is_top_level
、visibility_state
この機能により、クラッシュ レポートの API 本文に is_top_level
と visibility_state
の文字列フィールドが追加され、クラッシュ レポートのデフォルトのレポート エンドポイントに送信されます。
シリアル化時に属性の <
と >
をエスケープ
シリアル化時に属性の値で <
と >
をエスケープ。これにより、属性の値がシリアル化されて再解析された後に開始タグトークンとして解釈されるミューテーション XSS 攻撃のリスクを軽減できます。
スクリプトの完全性に関するポリシー
Subresource-Integrity(SRI)を使用すると、デベロッパーは読み込むアセットが実際に読み込まれるアセットであることを確認できます。ただし、現在のところ、デベロッパーがすべてのスクリプトが SRI を使用して検証されていることを確認する方法はありません。Integrity-Policy
ヘッダーを使用すると、デベロッパーは特定のタイプのすべてのリソースの完全性チェックが必要であることをアサートできます。完全性メタデータなしでそのタイプのリソースを読み込もうとすると、読み込みは失敗し、違反レポートがトリガーされます。
予測可能な報告された保存容量の割り当て
ストレージの無制限の権限がないサイトに対して、StorageManager の Estimate API から予測可能なストレージ割り当てを報告します。シークレット モードでは利用可能なストレージ容量が通常モードよりも大幅に小さいため、報告された保存容量を使用してユーザーのブラウジング モードを検出できます。
これは、ストレージ API を使用してユーザーのブラウジング モードを検出できないようにする緩和策です。ストレージ権限が制限されているサイトのすべてのブラウジング モードで、使用量 + 最小値(10 GiB、ディスクを 1 GiB 単位で切り上げ)に相当する人工的な割り当てを報告します。ストレージの無制限の権限を持つサイトには影響しません。適用された割り当ても影響を受けません。
再定期購入時の pushsubscriptionchange
イベント
プッシュ サブスクリプションが過去に存在していたが、権限の変更(許可から拒否/デフォルト)により取り消されたオリジンに通知権限が再び付与されたときに、サービス ワーカーで pushsubscriptionchange
イベントを発生させます。イベントは、空の oldSubscription
と newSubscription
で発生します。
推測ルール: Clear-Site-Data
ヘッダーに prefetchCache
と prerenderCache
を追加
Clear-Site-Data
ヘッダーの 2 つの新しい値(prefetchCache
と prerenderCache
): デベロッパーがプリレンダリング キャッシュとプリフェッチ キャッシュの消去をターゲットにするのに役立ちます。これらは任意のリクエストで送信でき、ドキュメント リクエストで行う必要はありません(たとえば、カートへの追加、ログイン、ログアウトの API 呼び出しレスポンスで返され、状態変化の推測を消去できます)。
推測ルール: target_hint
フィールド
これにより、デベロッパーが target_hint
フィールドを指定できるように、推測ルールの構文が拡張されます。このフィールドは、事前レンダリングされたページが最終的に有効になる、移動可能なターゲットを示すヒントを提供します。_blank
がヒントとして指定されている場合、window.open()
によって開かれたナビゲート可能なページで事前レンダリングされたページを有効にできます。このフィールドはプリフェッチではサポートされていません。
Storage Access API の厳格な同一オリジン ポリシー
セキュリティに関して、Storage Access API のセマンティクスを調整し、同一オリジン ポリシーに厳密に準拠させます。つまり、フレームで document.requestStorageAccess()
を使用すると、デフォルトでは iframe のオリジン(サイトではない)へのリクエストにのみ Cookie が付加されます。
Summarizer API
AI 言語モデルを基盤とする入力テキストの要約を作成する JavaScript API。ブラウザとオペレーティング システムが言語モデルにアクセスすることがますます求められています。この組み込みモデルを公開することで、すべてのウェブサイトが独自のマルチギガバイト言語モデルをダウンロードしたり、入力テキストをサードパーティ API に送信したりする必要がなくなります。特に、summarizer API は、言語モデルとインターフェースを形成するための高レベルの API を公開し、特定の言語モデルに依存しない方法でさまざまなユースケースの入力を要約します。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings
)を使用して、この API を使用できなくなる基盤となるモデルのダウンロードを無効にできます。
詳しくは、組み込み AI を使用して簡潔な要約を生成するをご覧ください。
Language Detector API
特定のテキストで使用されている言語を信頼度とともに検出する JavaScript API。これは翻訳の言語検出に重要な補足機能であり、Translator API と組み合わせて使用できます。たとえば、不明な言語でユーザー入力を受け取り、その言語を特定してから、特定のターゲット言語に翻訳します。多くのブラウザには言語検出機能がすでにありますが、この機能は JavaScript API でウェブ デベロッパーに同じ機能を提供します。これにより、翻訳 API を補完できます。
エンタープライズ ポリシー(GenAILocalFoundationalModelSettings
)を使用して、基盤となるモデルのダウンロードを無効にすると、この API は使用できなくなります。
詳しくは、組み込み AI で使用されている言語を検出するをご覧ください。
Translator API
ウェブページに言語翻訳機能を提供する JavaScript API。ブラウザで言語翻訳がユーザーに提供される機会が増えていますが、このような翻訳機能はウェブ デベロッパーにとっても有用です。これは、ライブ サービスやインタラクティブ サービスなど、ブラウザの組み込み翻訳機能が役に立たない場合に特に当てはまります。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings
)を使用して、この API を使用できなくする基盤となるモデルのダウンロードを無効にできます。
詳しくは、組み込み AI による翻訳をご覧ください。
ウェブアプリ スコープ拡張機能
ウェブアプリが他のオリジンにスコープを拡張できるようにする "scope_extensions"
ウェブアプリ マニフェスト フィールドを追加します。これにより、複数のサブドメインとトップレベル ドメインを制御するサイトを 1 つのウェブアプリとして表示できます。リストに登録されたオリジンは、.well-known/web-app-origin-association
構成ファイルを使用してウェブアプリとの関連付けを確認する必要があります。
Android の Bluetooth 経由の Web Serial
この機能を使用すると、ウェブページとウェブアプリは Android デバイスで Bluetooth 経由でシリアルポートに接続できます。Android 版 Chrome で Bluetooth RFCOMM を介した Web Serial API がサポートされるようになりました。他のプラットフォームの既存の企業ポリシー(DefaultSerialGuardSetting
、SerialAllowAllPortsForUrls
、SerialAllowUsbDevicesForUrls
、SerialAskForUrls
、SerialBlockedForUrls
)は、Android の future_on 状態で有効になります。SerialAllowUsbDevicesForUrls
を除くすべてのポリシーは、この機能が有効になると有効になります。SerialAllowUsbDevicesForUrls
は、Android が有線シリアルポートのシステムレベルのサポートを提供する今後のリリースで有効になります。
非推奨と削除
このバージョンの Chrome では、次の非推奨と削除が行われます。予定されている非推奨化、現在の非推奨化、過去の削除の一覧については、ChromeStatus.com をご覧ください。
このリリースの Chrome では、2 つの機能のサポートが終了します。
Media Source Extensions の非同期範囲削除を非推奨にする
メディアソース スタンダードは、非同期範囲削除に関連するあいまいな定義の動作を禁止するように、かなり前に変更されています。
SourceBuffer.abort()
がSourceBuffer.remove()
オペレーションを中止しなくなりました。MediaSource.duration
の設定で、現在バッファリングされているメディアを切り捨てることができなくなりました。
どちらの場合も例外がスローされるようになりました。
SwiftShader フォールバックを削除
ソフトウェア レンダラ SwiftShader をベースとする WebGL への自動フォールバックは非推奨となり、SwiftShader にフォールバックせずに WebGL コンテキストの作成が失敗するようになります。この変更には主に 2 つの理由があります。
- Chromium の GPU プロセスで JIT コードが実行されるため、SwiftShader はセキュリティ リスクが高い。
- 高パフォーマンスの GPU ベースの WebGL から CPU ベースの実装にフォールバックすると、ユーザー エクスペリエンスが低下する。ユーザーはこの動作を制御できず、バグレポートで説明するのが困難。
サポート終了までの間、SwiftShader をベースとして WebGL コンテキストを作成すると、Chrome DevTools コンソールに警告が表示されます。--enable-unsafe-swiftshader
を渡すと、この警告メッセージは表示されなくなります。